package rejaw.api.events
{
	/**
	 * This class encompasses all Rejaw custom event types
	 * The data property is the payload used to return the requested data
	 * 
	 * @author Bryan Bartow | bryanbartow@gmail.com | http://www.bryanbartow.com
	 * */
	import flash.events.Event;

	public class RejawEvent extends Event
	{
		//Event Type Constants
		//
		
		//Session Event Types
		public static const SESSION_CREATE               : String = "onSessionCreate";
		public static const SESSION_DESTROY              : String = "onSessionDestroy";
		public static const SESSION_VERIFY               : String = "onSessionVerify";
		public static const SESSION_SET_GUESTNAME        : String = "onSessionSetGuestname";
		
		//Authenticaton Event Types
		public static const AUTH_SIGNIN                  : String = "onAuthSignin";
		public static const AUTH_SIGNOUT                 : String = "onAuthSignout";
		
		//User Event Types
		public static const USER_GET_INFO                : String = "onUserGetInfo";
		public static const USER_GET_PROFILE             : String = "onUserGetProfile";
		public static const USER_SET_PROFILE             : String = "onUserSetProfile";
		public static const USER_GET_INBOX               : String = "onUserGetInbox";
		public static const USER_GET_PEOPLE              : String = "onUserGetPeople";
		public static const USER_ADD_TO_INBOX            : String = "onUserAddToInbox";
		public static const USER_START_FOLLOWING         : String = "onUserStartFollowing";
		public static const USER_STOP_FOLLOWING          : String = "onUserStopFollowing";
		public static const USER_CATCH_UP                : String = "onUserCatchUp";
		
		//Conversation Event Types
		public static const CONVERSATION_GET_INFO        : String = "onConversationGetInfo";
		public static const CONVERSATION_GET_REPLIES     : String = "onConversationGetReplies";
		public static const CONVERSATION_SHOUT           : String = "onConversationShout";
		public static const CONVERSATION_WHISPER         : String = "onConversationWhisper";
		public static const CONVERSATION_REPLY           : String = "onConversationReply";
		public static const CONVERSATION_DELETE          : String = "onConversationDelet";
		public static const CONVERSATION_DELETE_REPLY    : String = "onConversationDeleteReply";
		public static const CONVERSATION_CATCH_UP        : String = "onConversationCatchUp";
		public static const CONVERSATION_MUTE            : String = "ConversationMute";
		public static const CONVERSATION_UNMUTE          : String = "ConversationUnmute";
		public static const CONVERSATION_FAVORITE        : String = "ConversationFavorite";
		public static const CONVERSATION_UNFAVORITE      : String = "ConversationUnfavorite";
		
		//Subscription Event Types
		public static const SUBSCRIPTION_SUBSCRIBE       : String = "onSubscriptionSubscribe";
		public static const SUBSCRIPTION_UNSUBSCRIBE     : String = "onSubscriptionUnsubscribe";
		
		//Event Event Type
		public static const EVENT_OBSERVE                : String = "onEventObserve";
		
		//Timeline Event Types
		public static const TIMELINE_PUBLIC              : String = "onTimelinePublic";
		public static const TIMELINE_USER                : String = "onTimelineUser";   
		
		//
		//End Event Types
		
		//Data Object (Payload)
		public var data : Object = new Object();
		
		public function RejawEvent( type : String, bubbles : Boolean = false, cancelable : Boolean = false )
		{
			super( type, bubbles, cancelable );
		}
	}
}